# 应该是键表示物体object 值区间表示600HOI类的区间
# https://blog.csdn.net/irving512/article/details/115122416 数据集链接
#   4: [0, 9] airplane  , 1: [10, 23] bicycle   , 14: [24, 30] bird,

hico_object2label_index = {
    4: [0, 9],
    1: [10, 23],
    14: [24, 30],
    8: [31, 45],
    39: [46, 53],
    5: [54, 64],
    2: [65, 75],
    15: [76, 85],
    56: [86, 91],
    57: [92, 95],
    19: [96, 106],
    60: [107, 110],
    16: [111, 128],
    17: [129, 145],
    3: [146, 159],
    0: [160, 169],
    58: [170, 173],
    18: [174, 185],
    6: [186, 193],
    62: [194, 197],
    47: [198, 207],
    24: [208, 213],
    46: [214, 223],
    34: [224, 231],
    35: [232, 234],
    21: [235, 238],
    59: [239, 242],
    13: [243, 246],
    73: [247, 251],
    45: [252, 256],
    50: [257, 263],
    55: [264, 272],
    51: [273, 282],
    67: [283, 289],
    74: [290, 294],
    41: [295, 304],
    54: [305, 312],
    20: [313, 324],
    10: [325, 329],
    42: [330, 335],
    29: [336, 341],
    23: [342, 347],
    78: [348, 351],
    26: [352, 355],
    52: [356, 362],
    66: [363, 367],
    33: [368, 375],
    43: [376, 382],
    63: [383, 388],
    68: [389, 392],
    64: [393, 396],
    49: [397, 406],
    69: [407, 413],
    12: [414, 417],
    53: [418, 428],
    72: [429, 433],
    65: [434, 437],
    48: [438, 444],
    76: [445, 448],
    71: [449, 452],
    36: [453, 462],
    30: [463, 473],
    31: [474, 482],
    44: [483, 487],
    32: [488, 501],
    11: [502, 505],
    28: [506, 515],
    37: [516, 527],
    77: [528, 532],
    38: [533, 537],
    27: [538, 545],
    70: [546, 549],
    61: [550, 557],
    79: [558, 561],
    9: [562, 566],
    7: [567, 575],
    25: [576, 583],
    75: [584, 587],
    40: [588, 594],
    22: [595, 599],
}

hoi_index2action = {
    1: "board",
    2: "direct",
    3: "exit",
    4: "fly",
    5: "inspect",
    6: "load",
    7: "ride",
    8: "sit_on",
    9: "wash",
    10: "no_interaction",
    11: "carry",
    12: "hold",
    13: "inspect",
    14: "jump",
    15: "hop_on",
    16: "park",
    17: "push",
    18: "repair",
    19: "ride",
    20: "sit_on",
    21: "straddle",
    22: "walk",
    23: "wash",
    24: "no_interaction",
    25: "chase",
    26: "feed",
    27: "hold",
    28: "pet",
    29: "release",
    30: "watch",
    31: "no_interaction",
    32: "board",
    33: "drive",
    34: "exit",
    35: "inspect",
    36: "jump",
    37: "launch",
    38: "repair",
    39: "ride",
    40: "row",
    41: "sail",
    42: "sit_on",
    43: "stand_on",
    44: "tie",
    45: "wash",
    46: "no_interaction",
    47: "carry",
    48: "drink_with",
    49: "hold",
    50: "inspect",
    51: "lick",
    52: "open",
    53: "pour",
    54: "no_interaction",
    55: "board",
    56: "direct",
    57: "drive",
    58: "exit",
    59: "inspect",
    60: "load",
    61: "ride",
    62: "sit_on",
    63: "wash",
    64: "wave",
    65: "no_interaction",
    66: "board",
    67: "direct",
    68: "drive",
    69: "hose",
    70: "inspect",
    71: "jump",
    72: "load",
    73: "park",
    74: "ride",
    75: "wash",
    76: "no_interaction",
    77: "dry",
    78: "feed",
    79: "hold",
    80: "hug",
    81: "kiss",
    82: "pet",
    83: "scratch",
    84: "wash",
    85: "chase",
    86: "no_interaction",
    87: "carry",
    88: "hold",
    89: "lie_on",
    90: "sit_on",
    91: "stand_on",
    92: "no_interaction",
    93: "carry",
    94: "lie_on",
    95: "sit_on",
    96: "no_interaction",
    97: "feed",
    98: "herd",
    99: "hold",
    100: "hug",
    101: "kiss",
    102: "lasso",
    103: "milk",
    104: "pet",
    105: "ride",
    106: "walk",
    107: "no_interaction",
    108: "clean",
    109: "eat_at",
    110: "sit_at",
    111: "no_interaction",
    112: "carry",
    113: "dry",
    114: "feed",
    115: "groom",
    116: "hold",
    117: "hose",
    118: "hug",
    119: "inspect",
    120: "kiss",
    121: "pet",
    122: "run",
    123: "scratch",
    124: "straddle",
    125: "train",
    126: "walk",
    127: "wash",
    128: "chase",
    129: "no_interaction",
    130: "feed",
    131: "groom",
    132: "hold",
    133: "hug",
    134: "jump",
    135: "kiss",
    136: "load",
    137: "hop_on",
    138: "pet",
    139: "race",
    140: "ride",
    141: "run",
    142: "straddle",
    143: "train",
    144: "walk",
    145: "wash",
    146: "no_interaction",
    147: "hold",
    148: "inspect",
    149: "jump",
    150: "hop_on",
    151: "park",
    152: "push",
    153: "race",
    154: "ride",
    155: "sit_on",
    156: "straddle",
    157: "turn",
    158: "walk",
    159: "wash",
    160: "no_interaction",
    161: "carry",
    162: "greet",
    163: "hold",
    164: "hug",
    165: "kiss",
    166: "stab",
    167: "tag",
    168: "teach",
    169: "lick",
    170: "no_interaction",
    171: "carry",
    172: "hold",
    173: "hose",
    174: "no_interaction",
    175: "carry",
    176: "feed",
    177: "herd",
    178: "hold",
    179: "hug",
    180: "kiss",
    181: "pet",
    182: "ride",
    183: "shear",
    184: "walk",
    185: "wash",
    186: "no_interaction",
    187: "board",
    188: "drive",
    189: "exit",
    190: "load",
    191: "ride",
    192: "sit_on",
    193: "wash",
    194: "no_interaction",
    195: "control",
    196: "repair",
    197: "watch",
    198: "no_interaction",
    199: "buy",
    200: "cut",
    201: "eat",
    202: "hold",
    203: "inspect",
    204: "peel",
    205: "pick",
    206: "smell",
    207: "wash",
    208: "no_interaction",
    209: "carry",
    210: "hold",
    211: "inspect",
    212: "open",
    213: "wear",
    214: "no_interaction",
    215: "buy",
    216: "carry",
    217: "cut",
    218: "eat",
    219: "hold",
    220: "inspect",
    221: "peel",
    222: "pick",
    223: "smell",
    224: "no_interaction",
    225: "break",
    226: "carry",
    227: "hold",
    228: "sign",
    229: "swing",
    230: "throw",
    231: "wield",
    232: "no_interaction",
    233: "hold",
    234: "wear",
    235: "no_interaction",
    236: "feed",
    237: "hunt",
    238: "watch",
    239: "no_interaction",
    240: "clean",
    241: "lie_on",
    242: "sit_on",
    243: "no_interaction",
    244: "inspect",
    245: "lie_on",
    246: "sit_on",
    247: "no_interaction",
    248: "carry",
    249: "hold",
    250: "open",
    251: "read",
    252: "no_interaction",
    253: "hold",
    254: "stir",
    255: "wash",
    256: "lick",
    257: "no_interaction",
    258: "cut",
    259: "eat",
    260: "hold",
    261: "smell",
    262: "stir",
    263: "wash",
    264: "no_interaction",
    265: "blow",
    266: "carry",
    267: "cut",
    268: "eat",
    269: "hold",
    270: "light",
    271: "make",
    272: "pick_up",
    273: "no_interaction",
    274: "carry",
    275: "cook",
    276: "cut",
    277: "eat",
    278: "hold",
    279: "peel",
    280: "smell",
    281: "stir",
    282: "wash",
    283: "no_interaction",
    284: "carry",
    285: "hold",
    286: "read",
    287: "repair",
    288: "talk_on",
    289: "text_on",
    290: "no_interaction",
    291: "check",
    292: "hold",
    293: "repair",
    294: "set",
    295: "no_interaction",
    296: "carry",
    297: "drink_with",
    298: "hold",
    299: "inspect",
    300: "pour",
    301: "sip",
    302: "smell",
    303: "fill",
    304: "wash",
    305: "no_interaction",
    306: "buy",
    307: "carry",
    308: "eat",
    309: "hold",
    310: "make",
    311: "pick_up",
    312: "smell",
    313: "no_interaction",
    314: "feed",
    315: "hold",
    316: "hose",
    317: "hug",
    318: "kiss",
    319: "hop_on",
    320: "pet",
    321: "ride",
    322: "walk",
    323: "wash",
    324: "watch",
    325: "no_interaction",
    326: "hug",
    327: "inspect",
    328: "open",
    329: "paint",
    330: "no_interaction",
    331: "hold",
    332: "lift",
    333: "stick",
    334: "lick",
    335: "wash",
    336: "no_interaction",
    337: "block",
    338: "catch",
    339: "hold",
    340: "spin",
    341: "throw",
    342: "no_interaction",
    343: "feed",
    344: "kiss",
    345: "pet",
    346: "ride",
    347: "watch",
    348: "no_interaction",
    349: "hold",
    350: "operate",
    351: "repair",
    352: "no_interaction",
    353: "carry",
    354: "hold",
    355: "inspect",
    356: "no_interaction",
    357: "carry",
    358: "cook",
    359: "cut",
    360: "eat",
    361: "hold",
    362: "make",
    363: "no_interaction",
    364: "carry",
    365: "clean",
    366: "hold",
    367: "type_on",
    368: "no_interaction",
    369: "assemble",
    370: "carry",
    371: "fly",
    372: "hold",
    373: "inspect",
    374: "launch",
    375: "pull",
    376: "no_interaction",
    377: "cut_with",
    378: "hold",
    379: "stick",
    380: "wash",
    381: "wield",
    382: "lick",
    383: "no_interaction",
    384: "hold",
    385: "open",
    386: "read",
    387: "repair",
    388: "type_on",
    389: "no_interaction",
    390: "clean",
    391: "open",
    392: "operate",
    393: "no_interaction",
    394: "control",
    395: "hold",
    396: "repair",
    397: "no_interaction",
    398: "buy",
    399: "cut",
    400: "eat",
    401: "hold",
    402: "inspect",
    403: "peel",
    404: "pick",
    405: "squeeze",
    406: "wash",
    407: "no_interaction",
    408: "clean",
    409: "hold",
    410: "inspect",
    411: "open",
    412: "repair",
    413: "operate",
    414: "no_interaction",
    415: "check",
    416: "pay",
    417: "repair",
    418: "no_interaction",
    419: "buy",
    420: "carry",
    421: "cook",
    422: "cut",
    423: "eat",
    424: "hold",
    425: "make",
    426: "pick_up",
    427: "slide",
    428: "smell",
    429: "no_interaction",
    430: "clean",
    431: "hold",
    432: "move",
    433: "open",
    434: "no_interaction",
    435: "hold",
    436: "point",
    437: "swing",
    438: "no_interaction",
    439: "carry",
    440: "cook",
    441: "cut",
    442: "eat",
    443: "hold",
    444: "make",
    445: "no_interaction",
    446: "cut_with",
    447: "hold",
    448: "open",
    449: "no_interaction",
    450: "clean",
    451: "repair",
    452: "wash",
    453: "no_interaction",
    454: "carry",
    455: "flip",
    456: "grind",
    457: "hold",
    458: "jump",
    459: "pick_up",
    460: "ride",
    461: "sit_on",
    462: "stand_on",
    463: "no_interaction",
    464: "adjust",
    465: "carry",
    466: "hold",
    467: "inspect",
    468: "jump",
    469: "pick_up",
    470: "repair",
    471: "ride",
    472: "stand_on",
    473: "wear",
    474: "no_interaction",
    475: "adjust",
    476: "carry",
    477: "grind",
    478: "hold",
    479: "jump",
    480: "ride",
    481: "stand_on",
    482: "wear",
    483: "no_interaction",
    484: "hold",
    485: "lick",
    486: "wash",
    487: "sip",
    488: "no_interaction",
    489: "block",
    490: "carry",
    491: "catch",
    492: "dribble",
    493: "hit",
    494: "hold",
    495: "inspect",
    496: "kick",
    497: "pick_up",
    498: "serve",
    499: "sign",
    500: "spin",
    501: "throw",
    502: "no_interaction",
    503: "hold",
    504: "stand_under",
    505: "stop_at",
    506: "no_interaction",
    507: "carry",
    508: "drag",
    509: "hold",
    510: "hug",
    511: "load",
    512: "open",
    513: "pack",
    514: "pick_up",
    515: "zip",
    516: "no_interaction",
    517: "carry",
    518: "drag",
    519: "hold",
    520: "inspect",
    521: "jump",
    522: "lie_on",
    523: "load",
    524: "ride",
    525: "stand_on",
    526: "sit_on",
    527: "wash",
    528: "no_interaction",
    529: "carry",
    530: "hold",
    531: "hug",
    532: "kiss",
    533: "no_interaction",
    534: "carry",
    535: "hold",
    536: "inspect",
    537: "swing",
    538: "no_interaction",
    539: "adjust",
    540: "cut",
    541: "hold",
    542: "inspect",
    543: "pull",
    544: "tie",
    545: "wear",
    546: "no_interaction",
    547: "hold",
    548: "operate",
    549: "repair",
    550: "no_interaction",
    551: "clean",
    552: "flush",
    553: "open",
    554: "repair",
    555: "sit_on",
    556: "stand_on",
    557: "wash",
    558: "no_interaction",
    559: "brush_with",
    560: "hold",
    561: "wash",
    562: "no_interaction",
    563: "install",
    564: "repair",
    565: "stand_under",
    566: "stop_at",
    567: "no_interaction",
    568: "direct",
    569: "drive",
    570: "inspect",
    571: "load",
    572: "repair",
    573: "ride",
    574: "sit_on",
    575: "wash",
    576: "no_interaction",
    577: "carry",
    578: "hold",
    579: "lose",
    580: "open",
    581: "repair",
    582: "set",
    583: "stand_under",
    584: "no_interaction",
    585: "hold",
    586: "make",
    587: "paint",
    588: "no_interaction",
    589: "fill",
    590: "hold",
    591: "sip",
    592: "toast",
    593: "lick",
    594: "wash",
    595: "no_interaction",
    596: "feed",
    597: "hold",
    598: "pet",
    599: "watch",
    600: "no_interaction",
}

# hoi_action_dict generate
# with open("../hoi_action.txt", "r") as f:
#     str_temp = f.read().split("\n")[:-1]
#     print(len(str_temp))
# for str_ in str_temp:
#     str_ = str_.split(" ")
#     print(str_)
#     str_ = [i for i in str_ if i !='']
#     print(str_)
#     action_dict[int(str_[0])] = str_[2]
#     # exit()
# print(action_dict)
# exit()

with open(
    "/home/jxy/program/hoi2/600HOI-600HOI_no_object-add_seg_only_instance-max_adapt-dynamic_threshold_add_weight_23-black_add_correlation_hoi/generate_hoi/analyise_origin_dataset/hoi2otherhoi.txt",
    "r",
) as f:
    hoi2otherhoi = eval(f.read())
# print(hoi2otherhoi)
# exit()
# 正常索引，从1开始
action2index = {
    "adjust": 1,
    "assemble": 2,
    "block": 3,
    "blow": 4,
    "board": 5,
    "break": 6,
    "brush_with": 7,
    "buy": 8,
    "carry": 9,
    "catch": 10,
    "chase": 11,
    "check": 12,
    "clean": 13,
    "control": 14,
    "cook": 15,
    "cut": 16,
    "cut_with": 17,
    "direct": 18,
    "drag": 19,
    "dribble": 20,
    "drink_with": 21,
    "drive": 22,
    "dry": 23,
    "eat": 24,
    "eat_at": 25,
    "exit": 26,
    "feed": 27,
    "fill": 28,
    "flip": 29,
    "flush": 30,
    "fly": 31,
    "greet": 32,
    "grind": 33,
    "groom": 34,
    "herd": 35,
    "hit": 36,
    "hold": 37,
    "hop_on": 38,
    "hose": 39,
    "hug": 40,
    "hunt": 41,
    "inspect": 42,
    "install": 43,
    "jump": 44,
    "kick": 45,
    "kiss": 46,
    "lasso": 47,
    "launch": 48,
    "lick": 49,
    "lie_on": 50,
    "lift": 51,
    "light": 52,
    "load": 53,
    "lose": 54,
    "make": 55,
    "milk": 56,
    "move": 57,
    "no_interaction": 58,
    "open": 59,
    "operate": 60,
    "pack": 61,
    "paint": 62,
    "park": 63,
    "pay": 64,
    "peel": 65,
    "pet": 66,
    "pick": 67,
    "pick_up": 68,
    "point": 69,
    "pour": 70,
    "pull": 71,
    "push": 72,
    "race": 73,
    "read": 74,
    "release": 75,
    "repair": 76,
    "ride": 77,
    "row": 78,
    "run": 79,
    "sail": 80,
    "scratch": 81,
    "serve": 82,
    "set": 83,
    "shear": 84,
    "sign": 85,
    "sip": 86,
    "sit_at": 87,
    "sit_on": 88,
    "slide": 89,
    "smell": 90,
    "spin": 91,
    "squeeze": 92,
    "stab": 93,
    "stand_on": 94,
    "stand_under": 95,
    "stick": 96,
    "stir": 97,
    "stop_at": 98,
    "straddle": 99,
    "swing": 100,
    "tag": 101,
    "talk_on": 102,
    "teach": 103,
    "text_on": 104,
    "throw": 105,
    "tie": 106,
    "toast": 107,
    "train": 108,
    "turn": 109,
    "type_on": 110,
    "walk": 111,
    "wash": 112,
    "watch": 113,
    "wave": 114,
    "wear": 115,
    "wield": 116,
    "zip": 117,
}
# action2index generate
# with open("../action.txt", "r") as f:
#     str_temp = f.read().split("\n")[:-1]
#     print(len(str_temp))
# for str_ in str_temp:
#     str_ = str_.split(" ")
#     print(str_)
#     str_ = [i for i in str_ if i !='']
#     print(str_)
#     action2index[str_[1]] = int(str_[0])
#     # exit()
# print(action2index)
# exit()


# 物体object转化成数字 按顺序从0-79
# 跟数据集里的80类物体列表不一样！
# 这个是yolo的
obj2name = {
    0: "person",
    1: "bicycle",
    2: "car",
    3: "motorcycle",
    4: "airplane",
    5: "bus",
    6: "train",
    7: "truck",
    8: "boat",
    9: "traffic light",
    10: "fire hydrant",
    11: "stop sign",
    12: "parking meter",
    13: "bench",
    14: "bird",
    15: "cat",
    16: "dog",
    17: "horse",
    18: "sheep",
    19: "cow",
    20: "elephant",
    21: "bear",
    22: "zebra",
    23: "giraffe",
    24: "backpack",
    25: "umbrella",
    26: "handbag",
    27: "tie",
    28: "suitcase",
    29: "frisbee",
    30: "skis",
    31: "snowboard",
    32: "sports ball",
    33: "kite",
    34: "baseball bat",
    35: "baseball glove",
    36: "skateboard",
    37: "surfboard",
    38: "tennis racket",
    39: "bottle",
    40: "wine glass",
    41: "cup",
    42: "fork",
    43: "knife",
    44: "spoon",
    45: "bowl",
    46: "banana",
    47: "apple",
    48: "sandwich",
    49: "orange",
    50: "broccoli",
    51: "carrot",
    52: "hot dog",
    53: "pizza",
    54: "donut",
    55: "cake",
    56: "chair",
    57: "couch",
    58: "potted plant",
    59: "bed",
    60: "dining table",
    61: "toilet",
    62: "tv",
    63: "laptop",
    64: "mouse",
    65: "remote",
    66: "keyboard",
    67: "cell phone",
    68: "microwave",
    69: "oven",
    70: "toaster",
    71: "sink",
    72: "refrigerator",
    73: "book",
    74: "clock",
    75: "vase",
    76: "scissors",
    77: "teddy bear",
    78: "hair drier",
    79: "toothbrush",
}

valid_obj_ids = (
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20,
    21,
    22,
    23,
    24,
    25,
    27,
    28,
    31,
    32,
    33,
    34,
    35,
    36,
    37,
    38,
    39,
    40,
    41,
    42,
    43,
    44,
    46,
    47,
    48,
    49,
    50,
    51,
    52,
    53,
    54,
    55,
    56,
    57,
    58,
    59,
    60,
    61,
    62,
    63,
    64,
    65,
    67,
    70,
    72,
    73,
    74,
    75,
    76,
    77,
    78,
    79,
    80,
    81,
    82,
    84,
    85,
    86,
    87,
    88,
    89,
    90,
)


# gen-vlkt预定义好的 就有600个句子 但是还得改 前面的键不对 改成从1,2,3,4到600 根据k值去取句子
hico_text_label = {
    (4, 4): "a photo of a person boarding an airplane",
    (17, 4): "a photo of a person directing an airplane",
    (25, 4): "a photo of a person exiting an airplane",
    (30, 4): "a photo of a person flying an airplane",
    (41, 4): "a photo of a person inspecting an airplane",
    (52, 4): "a photo of a person loading an airplane",
    (76, 4): "a photo of a person riding an airplane",
    (87, 4): "a photo of a person sitting on an airplane",
    (111, 4): "a photo of a person washing an airplane",
    (57, 4): "a photo of a person and an airplane",
    (8, 1): "a photo of a person carrying a bicycle",
    (36, 1): "a photo of a person holding a bicycle",
    (41, 1): "a photo of a person inspecting a bicycle",
    (43, 1): "a photo of a person jumping a bicycle",
    (37, 1): "a photo of a person hopping on a bicycle",
    (62, 1): "a photo of a person parking a bicycle",
    (71, 1): "a photo of a person pushing a bicycle",
    (75, 1): "a photo of a person repairing a bicycle",
    (76, 1): "a photo of a person riding a bicycle",
    (87, 1): "a photo of a person sitting on a bicycle",
    (98, 1): "a photo of a person straddling a bicycle",
    (110, 1): "a photo of a person walking a bicycle",
    (111, 1): "a photo of a person washing a bicycle",
    (57, 1): "a photo of a person and a bicycle",  # 23
    (10, 14): "a photo of a person chasing a bird",
    (26, 14): "a photo of a person feeding a bird",
    (36, 14): "a photo of a person holding a bird",
    (65, 14): "a photo of a person petting a bird",
    (74, 14): "a photo of a person releasing a bird",
    (112, 14): "a photo of a person watching a bird",
    (57, 14): "a photo of a person and a bird",  # 30
    (4, 8): "a photo of a person boarding a boat",
    (21, 8): "a photo of a person driving a boat",
    (25, 8): "a photo of a person exiting a boat",
    (41, 8): "a photo of a person inspecting a boat",
    (43, 8): "a photo of a person jumping a boat",
    (47, 8): "a photo of a person launching a boat",
    (75, 8): "a photo of a person repairing a boat",
    (76, 8): "a photo of a person riding a boat",
    (77, 8): "a photo of a person rowing a boat",
    (79, 8): "a photo of a person sailing a boat",
    (87, 8): "a photo of a person sitting on a boat",
    (93, 8): "a photo of a person standing on a boat",
    (105, 8): "a photo of a person tying a boat",
    (111, 8): "a photo of a person washing a boat",
    (57, 8): "a photo of a person and a boat",  # 45
    (8, 39): "a photo of a person carrying a bottle",
    (20, 39): "a photo of a person drinking with a bottle",
    (36, 39): "a photo of a person holding a bottle",
    (41, 39): "a photo of a person inspecting a bottle",
    (48, 39): "a photo of a person licking a bottle",
    (58, 39): "a photo of a person opening a bottle",
    (69, 39): "a photo of a person pouring a bottle",
    (57, 39): "a photo of a person and a bottle",  # 53
    (4, 5): "a photo of a person boarding a bus",
    (17, 5): "a photo of a person directing a bus",
    (21, 5): "a photo of a person driving a bus",
    (25, 5): "a photo of a person exiting a bus",
    (41, 5): "a photo of a person inspecting a bus",
    (52, 5): "a photo of a person loading a bus",
    (76, 5): "a photo of a person riding a bus",
    (87, 5): "a photo of a person sitting on a bus",
    (111, 5): "a photo of a person washing a bus",
    (113, 5): "a photo of a person waving a bus",
    (57, 5): "a photo of a person and a bus",
    (4, 2): "a photo of a person boarding a car",
    (17, 2): "a photo of a person directing a car",
    (21, 2): "a photo of a person driving a car",
    (38, 2): "a photo of a person hosing a car",
    (41, 2): "a photo of a person inspecting a car",
    (43, 2): "a photo of a person jumping a car",
    (52, 2): "a photo of a person loading a car",
    (62, 2): "a photo of a person parking a car",
    (76, 2): "a photo of a person riding a car",
    (111, 2): "a photo of a person washing a car",
    (57, 2): "a photo of a person and a car",
    (22, 15): "a photo of a person drying a cat",
    (26, 15): "a photo of a person feeding a cat",
    (36, 15): "a photo of a person holding a cat",
    (39, 15): "a photo of a person hugging a cat",
    (45, 15): "a photo of a person kissing a cat",
    (65, 15): "a photo of a person petting a cat",
    (80, 15): "a photo of a person scratching a cat",
    (111, 15): "a photo of a person washing a cat",
    (10, 15): "a photo of a person chasing a cat",
    (57, 15): "a photo of a person and a cat",  # 85
    (8, 56): "a photo of a person carrying a chair",
    (36, 56): "a photo of a person holding a chair",
    (49, 56): "a photo of a person lying on a chair",
    (87, 56): "a photo of a person sitting on a chair",
    (93, 56): "a photo of a person standing on a chair",
    (57, 56): "a photo of a person and a chair",  # 91
    (8, 57): "a photo of a person carrying a couch",
    (49, 57): "a photo of a person lying on a couch",
    (87, 57): "a photo of a person sitting on a couch",
    (57, 57): "a photo of a person and a couch",  # 95
    (26, 19): "a photo of a person feeding a cow",
    (34, 19): "a photo of a person herding a cow",
    (36, 19): "a photo of a person holding a cow",
    (39, 19): "a photo of a person hugging a cow",
    (45, 19): "a photo of a person kissing a cow",
    (46, 19): "a photo of a person lassoing a cow",
    (55, 19): "a photo of a person milking a cow",
    (65, 19): "a photo of a person petting a cow",
    (76, 19): "a photo of a person riding a cow",
    (110, 19): "a photo of a person walking a cow",
    (57, 19): "a photo of a person and a cow",  # 106
    (12, 60): "a photo of a person cleaning a dining table",
    (24, 60): "a photo of a person eating at a dining table",
    (86, 60): "a photo of a person sitting at a dining table",
    (57, 60): "a photo of a person and a dining table",  # 110
    (8, 16): "a photo of a person carrying a dog",
    (22, 16): "a photo of a person drying a dog",
    (26, 16): "a photo of a person feeding a dog",
    (33, 16): "a photo of a person grooming a dog",
    (36, 16): "a photo of a person holding a dog",
    (38, 16): "a photo of a person hosing a dog",
    (39, 16): "a photo of a person hugging a dog",
    (41, 16): "a photo of a person inspecting a dog",
    (45, 16): "a photo of a person kissing a dog",
    (65, 16): "a photo of a person petting a dog",
    (78, 16): "a photo of a person running a dog",
    (80, 16): "a photo of a person scratching a dog",
    (98, 16): "a photo of a person straddling a dog",
    (107, 16): "a photo of a person training a dog",
    (110, 16): "a photo of a person walking a dog",
    (111, 16): "a photo of a person washing a dog",
    (10, 16): "a photo of a person chasing a dog",
    (57, 16): "a photo of a person and a dog",
    (26, 17): "a photo of a person feeding a horse",
    (33, 17): "a photo of a person grooming a horse",
    (36, 17): "a photo of a person holding a horse",
    (39, 17): "a photo of a person hugging a horse",
    (43, 17): "a photo of a person jumping a horse",
    (45, 17): "a photo of a person kissing a horse",
    (52, 17): "a photo of a person loading a horse",
    (37, 17): "a photo of a person hopping on a horse",
    (65, 17): "a photo of a person petting a horse",
    (72, 17): "a photo of a person racing a horse",
    (76, 17): "a photo of a person riding a horse",
    (78, 17): "a photo of a person running a horse",
    (98, 17): "a photo of a person straddling a horse",
    (107, 17): "a photo of a person training a horse",
    (110, 17): "a photo of a person walking a horse",
    (111, 17): "a photo of a person washing a horse",
    (57, 17): "a photo of a person and a horse",  # 145
    (36, 3): "a photo of a person holding a motorcycle",
    (41, 3): "a photo of a person inspecting a motorcycle",
    (43, 3): "a photo of a person jumping a motorcycle",
    (37, 3): "a photo of a person hopping on a motorcycle",
    (62, 3): "a photo of a person parking a motorcycle",
    (71, 3): "a photo of a person pushing a motorcycle",
    (72, 3): "a photo of a person racing a motorcycle",
    (76, 3): "a photo of a person riding a motorcycle",
    (87, 3): "a photo of a person sitting on a motorcycle",
    (98, 3): "a photo of a person straddling a motorcycle",
    (108, 3): "a photo of a person turning a motorcycle",
    (110, 3): "a photo of a person walking a motorcycle",
    (111, 3): "a photo of a person washing a motorcycle",
    (57, 3): "a photo of a person and a motorcycle",
    (8, 0): "a photo of a person carrying a person",
    (31, 0): "a photo of a person greeting a person",
    (36, 0): "a photo of a person holding a person",
    (39, 0): "a photo of a person hugging a person",
    (45, 0): "a photo of a person kissing a person",
    (92, 0): "a photo of a person stabbing a person",
    (100, 0): "a photo of a person tagging a person",
    (102, 0): "a photo of a person teaching a person",
    (48, 0): "a photo of a person licking a person",
    (57, 0): "a photo of a person and a person",  # 169
    (8, 58): "a photo of a person carrying a potted plant",
    (36, 58): "a photo of a person holding a potted plant",
    (38, 58): "a photo of a person hosing a potted plant",
    (57, 58): "a photo of a person and a potted plant",  # 173
    (8, 18): "a photo of a person carrying a sheep",
    (26, 18): "a photo of a person feeding a sheep",
    (34, 18): "a photo of a person herding a sheep",
    (36, 18): "a photo of a person holding a sheep",
    (39, 18): "a photo of a person hugging a sheep",
    (45, 18): "a photo of a person kissing a sheep",
    (65, 18): "a photo of a person petting a sheep",
    (76, 18): "a photo of a person riding a sheep",
    (83, 18): "a photo of a person shearing a sheep",
    (110, 18): "a photo of a person walking a sheep",
    (111, 18): "a photo of a person washing a sheep",
    (57, 18): "a photo of a person and a sheep",  # 185
    (4, 6): "a photo of a person boarding a train",
    (21, 6): "a photo of a person driving a train",
    (25, 6): "a photo of a person exiting a train",
    (52, 6): "a photo of a person loading a train",
    (76, 6): "a photo of a person riding a train",
    (87, 6): "a photo of a person sitting on a train",
    (111, 6): "a photo of a person washing a train",
    (57, 6): "a photo of a person and a train",  # 193
    (13, 62): "a photo of a person controlling a tv",
    (75, 62): "a photo of a person repairing a tv",
    (112, 62): "a photo of a person watching a tv",
    (57, 62): "a photo of a person and a tv",  # 197
    (7, 47): "a photo of a person buying an apple",
    (15, 47): "a photo of a person cutting an apple",
    (23, 47): "a photo of a person eating an apple",
    (36, 47): "a photo of a person holding an apple",
    (41, 47): "a photo of a person inspecting an apple",
    (64, 47): "a photo of a person peeling an apple",
    (66, 47): "a photo of a person picking an apple",
    (89, 47): "a photo of a person smelling an apple",
    (111, 47): "a photo of a person washing an apple",
    (57, 47): "a photo of a person and an apple",  # 207
    (8, 24): "a photo of a person carrying a backpack",
    (36, 24): "a photo of a person holding a backpack",
    (41, 24): "a photo of a person inspecting a backpack",
    (58, 24): "a photo of a person opening a backpack",
    (114, 24): "a photo of a person wearing a backpack",
    (57, 24): "a photo of a person and a backpack",
    (7, 46): "a photo of a person buying a banana",
    (8, 46): "a photo of a person carrying a banana",
    (15, 46): "a photo of a person cutting a banana",
    (23, 46): "a photo of a person eating a banana",
    (36, 46): "a photo of a person holding a banana",
    (41, 46): "a photo of a person inspecting a banana",
    (64, 46): "a photo of a person peeling a banana",
    (66, 46): "a photo of a person picking a banana",
    (89, 46): "a photo of a person smelling a banana",
    (57, 46): "a photo of a person and a banana",  # 223
    (5, 34): "a photo of a person breaking a baseball bat",
    (8, 34): "a photo of a person carrying a baseball bat",
    (36, 34): "a photo of a person holding a baseball bat",
    (84, 34): "a photo of a person signing a baseball bat",
    (99, 34): "a photo of a person swinging a baseball bat",
    (104, 34): "a photo of a person throwing a baseball bat",
    (115, 34): "a photo of a person wielding a baseball bat",
    (57, 34): "a photo of a person and a baseball bat",  # 231
    (36, 35): "a photo of a person holding a baseball glove",
    (114, 35): "a photo of a person wearing a baseball glove",
    (57, 35): "a photo of a person and a baseball glove",  # 234
    (26, 21): "a photo of a person feeding a bear",
    (40, 21): "a photo of a person hunting a bear",
    (112, 21): "a photo of a person watching a bear",
    (57, 21): "a photo of a person and a bear",  # 238
    (12, 59): "a photo of a person cleaning a bed",
    (49, 59): "a photo of a person lying on a bed",
    (87, 59): "a photo of a person sitting on a bed",
    (57, 59): "a photo of a person and a bed",  # 242
    (41, 13): "a photo of a person inspecting a bench",
    (49, 13): "a photo of a person lying on a bench",
    (87, 13): "a photo of a person sitting on a bench",
    (57, 13): "a photo of a person and a bench",  # 246
    (8, 73): "a photo of a person carrying a book",
    (36, 73): "a photo of a person holding a book",
    (58, 73): "a photo of a person opening a book",
    (73, 73): "a photo of a person reading a book",
    (57, 73): "a photo of a person and a book",
    (36, 45): "a photo of a person holding a bowl",
    (96, 45): "a photo of a person stirring a bowl",
    (111, 45): "a photo of a person washing a bowl",
    (48, 45): "a photo of a person licking a bowl",
    (57, 45): "a photo of a person and a bowl",  # 256
    (15, 50): "a photo of a person cutting a broccoli",
    (23, 50): "a photo of a person eating a broccoli",
    (36, 50): "a photo of a person holding a broccoli",
    (89, 50): "a photo of a person smelling a broccoli",
    (96, 50): "a photo of a person stirring a broccoli",
    (111, 50): "a photo of a person washing a broccoli",
    (57, 50): "a photo of a person and a broccoli",
    (3, 55): "a photo of a person blowing a cake",
    (8, 55): "a photo of a person carrying a cake",
    (15, 55): "a photo of a person cutting a cake",
    (23, 55): "a photo of a person eating a cake",
    (36, 55): "a photo of a person holding a cake",
    (51, 55): "a photo of a person lighting a cake",
    (54, 55): "a photo of a person making a cake",
    (67, 55): "a photo of a person picking up a cake",
    (57, 55): "a photo of a person and a cake",
    (8, 51): "a photo of a person carrying a carrot",
    (14, 51): "a photo of a person cooking a carrot",
    (15, 51): "a photo of a person cutting a carrot",
    (23, 51): "a photo of a person eating a carrot",
    (36, 51): "a photo of a person holding a carrot",
    (64, 51): "a photo of a person peeling a carrot",
    (89, 51): "a photo of a person smelling a carrot",
    (96, 51): "a photo of a person stirring a carrot",
    (111, 51): "a photo of a person washing a carrot",
    (57, 51): "a photo of a person and a carrot",
    (8, 67): "a photo of a person carrying a cell phone",
    (36, 67): "a photo of a person holding a cell phone",
    (73, 67): "a photo of a person reading a cell phone",
    (75, 67): "a photo of a person repairing a cell phone",
    (101, 67): "a photo of a person talking on a cell phone",
    (103, 67): "a photo of a person texting on a cell phone",
    (57, 67): "a photo of a person and a cell phone",
    (11, 74): "a photo of a person checking a clock",
    (36, 74): "a photo of a person holding a clock",
    (75, 74): "a photo of a person repairing a clock",
    (82, 74): "a photo of a person setting a clock",
    (57, 74): "a photo of a person and a clock",
    (8, 41): "a photo of a person carrying a cup",
    (20, 41): "a photo of a person drinking with a cup",
    (36, 41): "a photo of a person holding a cup",
    (41, 41): "a photo of a person inspecting a cup",
    (69, 41): "a photo of a person pouring a cup",
    (85, 41): "a photo of a person sipping a cup",
    (89, 41): "a photo of a person smelling a cup",
    (27, 41): "a photo of a person filling a cup",
    (111, 41): "a photo of a person washing a cup",
    (57, 41): "a photo of a person and a cup",
    (7, 54): "a photo of a person buying a donut",
    (8, 54): "a photo of a person carrying a donut",
    (23, 54): "a photo of a person eating a donut",
    (36, 54): "a photo of a person holding a donut",
    (54, 54): "a photo of a person making a donut",
    (67, 54): "a photo of a person picking up a donut",
    (89, 54): "a photo of a person smelling a donut",
    (57, 54): "a photo of a person and a donut",
    (26, 20): "a photo of a person feeding an elephant",
    (36, 20): "a photo of a person holding an elephant",
    (38, 20): "a photo of a person hosing an elephant",
    (39, 20): "a photo of a person hugging an elephant",
    (45, 20): "a photo of a person kissing an elephant",
    (37, 20): "a photo of a person hopping on an elephant",
    (65, 20): "a photo of a person petting an elephant",
    (76, 20): "a photo of a person riding an elephant",
    (110, 20): "a photo of a person walking an elephant",
    (111, 20): "a photo of a person washing an elephant",
    (112, 20): "a photo of a person watching an elephant",
    (57, 20): "a photo of a person and an elephant",
    (39, 10): "a photo of a person hugging a fire hydrant",
    (41, 10): "a photo of a person inspecting a fire hydrant",
    (58, 10): "a photo of a person opening a fire hydrant",
    (61, 10): "a photo of a person painting a fire hydrant",
    (57, 10): "a photo of a person and a fire hydrant",
    (36, 42): "a photo of a person holding a fork",
    (50, 42): "a photo of a person lifting a fork",
    (95, 42): "a photo of a person sticking a fork",
    (48, 42): "a photo of a person licking a fork",
    (111, 42): "a photo of a person washing a fork",
    (57, 42): "a photo of a person and a fork",
    (2, 29): "a photo of a person blocking a frisbee",
    (9, 29): "a photo of a person catching a frisbee",
    (36, 29): "a photo of a person holding a frisbee",
    (90, 29): "a photo of a person spinning a frisbee",
    (104, 29): "a photo of a person throwing a frisbee",
    (57, 29): "a photo of a person and a frisbee",
    (26, 23): "a photo of a person feeding a giraffe",
    (45, 23): "a photo of a person kissing a giraffe",
    (65, 23): "a photo of a person petting a giraffe",
    (76, 23): "a photo of a person riding a giraffe",
    (112, 23): "a photo of a person watching a giraffe",
    (57, 23): "a photo of a person and a giraffe",
    (36, 78): "a photo of a person holding a hair drier",
    (59, 78): "a photo of a person operating a hair drier",
    (75, 78): "a photo of a person repairing a hair drier",
    (57, 78): "a photo of a person and a hair drier",
    (8, 26): "a photo of a person carrying a handbag",
    (36, 26): "a photo of a person holding a handbag",
    (41, 26): "a photo of a person inspecting a handbag",
    (57, 26): "a photo of a person and a handbag",
    (8, 52): "a photo of a person carrying a hot dog",
    (14, 52): "a photo of a person cooking a hot dog",
    (15, 52): "a photo of a person cutting a hot dog",
    (23, 52): "a photo of a person eating a hot dog",
    (36, 52): "a photo of a person holding a hot dog",
    (54, 52): "a photo of a person making a hot dog",
    (57, 52): "a photo of a person and a hot dog",
    (8, 66): "a photo of a person carrying a keyboard",
    (12, 66): "a photo of a person cleaning a keyboard",
    (36, 66): "a photo of a person holding a keyboard",
    (109, 66): "a photo of a person typing on a keyboard",
    (57, 66): "a photo of a person and a keyboard",
    (1, 33): "a photo of a person assembling a kite",
    (8, 33): "a photo of a person carrying a kite",
    (30, 33): "a photo of a person flying a kite",
    (36, 33): "a photo of a person holding a kite",
    (41, 33): "a photo of a person inspecting a kite",
    (47, 33): "a photo of a person launching a kite",
    (70, 33): "a photo of a person pulling a kite",
    (57, 33): "a photo of a person and a kite",
    (16, 43): "a photo of a person cutting with a knife",
    (36, 43): "a photo of a person holding a knife",
    (95, 43): "a photo of a person sticking a knife",
    (111, 43): "a photo of a person washing a knife",
    (115, 43): "a photo of a person wielding a knife",
    (48, 43): "a photo of a person licking a knife",
    (57, 43): "a photo of a person and a knife",
    (36, 63): "a photo of a person holding a laptop",
    (58, 63): "a photo of a person opening a laptop",
    (73, 63): "a photo of a person reading a laptop",
    (75, 63): "a photo of a person repairing a laptop",
    (109, 63): "a photo of a person typing on a laptop",
    (57, 63): "a photo of a person and a laptop",
    (12, 68): "a photo of a person cleaning a microwave",
    (58, 68): "a photo of a person opening a microwave",
    (59, 68): "a photo of a person operating a microwave",
    (57, 68): "a photo of a person and a microwave",
    (13, 64): "a photo of a person controlling a mouse",
    (36, 64): "a photo of a person holding a mouse",
    (75, 64): "a photo of a person repairing a mouse",
    (57, 64): "a photo of a person and a mouse",
    (7, 49): "a photo of a person buying an orange",
    (15, 49): "a photo of a person cutting an orange",
    (23, 49): "a photo of a person eating an orange",
    (36, 49): "a photo of a person holding an orange",
    (41, 49): "a photo of a person inspecting an orange",
    (64, 49): "a photo of a person peeling an orange",
    (66, 49): "a photo of a person picking an orange",
    (91, 49): "a photo of a person squeezing an orange",
    (111, 49): "a photo of a person washing an orange",
    (57, 49): "a photo of a person and an orange",
    (12, 69): "a photo of a person cleaning an oven",
    (36, 69): "a photo of a person holding an oven",
    (41, 69): "a photo of a person inspecting an oven",
    (58, 69): "a photo of a person opening an oven",
    (75, 69): "a photo of a person repairing an oven",
    (59, 69): "a photo of a person operating an oven",
    (57, 69): "a photo of a person and an oven",
    (11, 12): "a photo of a person checking a parking meter",
    (63, 12): "a photo of a person paying a parking meter",
    (75, 12): "a photo of a person repairing a parking meter",
    (57, 12): "a photo of a person and a parking meter",
    (7, 53): "a photo of a person buying a pizza",
    (8, 53): "a photo of a person carrying a pizza",
    (14, 53): "a photo of a person cooking a pizza",
    (15, 53): "a photo of a person cutting a pizza",
    (23, 53): "a photo of a person eating a pizza",
    (36, 53): "a photo of a person holding a pizza",
    (54, 53): "a photo of a person making a pizza",
    (67, 53): "a photo of a person picking up a pizza",
    (88, 53): "a photo of a person sliding a pizza",
    (89, 53): "a photo of a person smelling a pizza",
    (57, 53): "a photo of a person and a pizza",
    (12, 72): "a photo of a person cleaning a refrigerator",
    (36, 72): "a photo of a person holding a refrigerator",
    (56, 72): "a photo of a person moving a refrigerator",
    (58, 72): "a photo of a person opening a refrigerator",
    (57, 72): "a photo of a person and a refrigerator",
    (36, 65): "a photo of a person holding a remote",
    (68, 65): "a photo of a person pointing a remote",
    (99, 65): "a photo of a person swinging a remote",
    (57, 65): "a photo of a person and a remote",
    (8, 48): "a photo of a person carrying a sandwich",
    (14, 48): "a photo of a person cooking a sandwich",
    (15, 48): "a photo of a person cutting a sandwich",
    (23, 48): "a photo of a person eating a sandwich",
    (36, 48): "a photo of a person holding a sandwich",
    (54, 48): "a photo of a person making a sandwich",
    (57, 48): "a photo of a person and a sandwich",
    (16, 76): "a photo of a person cutting with a scissors",
    (36, 76): "a photo of a person holding a scissors",
    (58, 76): "a photo of a person opening a scissors",
    (57, 76): "a photo of a person and a scissors",
    (12, 71): "a photo of a person cleaning a sink",
    (75, 71): "a photo of a person repairing a sink",
    (111, 71): "a photo of a person washing a sink",
    (57, 71): "a photo of a person and a sink",
    (8, 36): "a photo of a person carrying a skateboard",
    (28, 36): "a photo of a person flipping a skateboard",
    (32, 36): "a photo of a person grinding a skateboard",
    (36, 36): "a photo of a person holding a skateboard",
    (43, 36): "a photo of a person jumping a skateboard",
    (67, 36): "a photo of a person picking up a skateboard",
    (76, 36): "a photo of a person riding a skateboard",
    (87, 36): "a photo of a person sitting on a skateboard",
    (93, 36): "a photo of a person standing on a skateboard",
    (57, 36): "a photo of a person and a skateboard",
    (0, 30): "a photo of a person adjusting a skis",
    (8, 30): "a photo of a person carrying a skis",
    (36, 30): "a photo of a person holding a skis",
    (41, 30): "a photo of a person inspecting a skis",
    (43, 30): "a photo of a person jumping a skis",
    (67, 30): "a photo of a person picking up a skis",
    (75, 30): "a photo of a person repairing a skis",
    (76, 30): "a photo of a person riding a skis",
    (93, 30): "a photo of a person standing on a skis",
    (114, 30): "a photo of a person wearing a skis",
    (57, 30): "a photo of a person and a skis",
    (0, 31): "a photo of a person adjusting a snowboard",
    (8, 31): "a photo of a person carrying a snowboard",
    (32, 31): "a photo of a person grinding a snowboard",
    (36, 31): "a photo of a person holding a snowboard",
    (43, 31): "a photo of a person jumping a snowboard",
    (76, 31): "a photo of a person riding a snowboard",
    (93, 31): "a photo of a person standing on a snowboard",
    (114, 31): "a photo of a person wearing a snowboard",
    (57, 31): "a photo of a person and a snowboard",
    (36, 44): "a photo of a person holding a spoon",
    (48, 44): "a photo of a person licking a spoon",
    (111, 44): "a photo of a person washing a spoon",
    (85, 44): "a photo of a person sipping a spoon",
    (57, 44): "a photo of a person and a spoon",
    (2, 32): "a photo of a person blocking a sports ball",
    (8, 32): "a photo of a person carrying a sports ball",
    (9, 32): "a photo of a person catching a sports ball",
    (19, 32): "a photo of a person dribbling a sports ball",
    (35, 32): "a photo of a person hitting a sports ball",
    (36, 32): "a photo of a person holding a sports ball",
    (41, 32): "a photo of a person inspecting a sports ball",
    (44, 32): "a photo of a person kicking a sports ball",
    (67, 32): "a photo of a person picking up a sports ball",
    (81, 32): "a photo of a person serving a sports ball",
    (84, 32): "a photo of a person signing a sports ball",
    (90, 32): "a photo of a person spinning a sports ball",
    (104, 32): "a photo of a person throwing a sports ball",
    (57, 32): "a photo of a person and a sports ball",
    (36, 11): "a photo of a person holding a stop sign",
    (94, 11): "a photo of a person standing under a stop sign",
    (97, 11): "a photo of a person stopping at a stop sign",
    (57, 11): "a photo of a person and a stop sign",
    (8, 28): "a photo of a person carrying a suitcase",
    (18, 28): "a photo of a person dragging a suitcase",
    (36, 28): "a photo of a person holding a suitcase",
    (39, 28): "a photo of a person hugging a suitcase",
    (52, 28): "a photo of a person loading a suitcase",
    (58, 28): "a photo of a person opening a suitcase",
    (60, 28): "a photo of a person packing a suitcase",
    (67, 28): "a photo of a person picking up a suitcase",
    (116, 28): "a photo of a person zipping a suitcase",
    (57, 28): "a photo of a person and a suitcase",
    (8, 37): "a photo of a person carrying a surfboard",
    (18, 37): "a photo of a person dragging a surfboard",
    (36, 37): "a photo of a person holding a surfboard",
    (41, 37): "a photo of a person inspecting a surfboard",
    (43, 37): "a photo of a person jumping a surfboard",
    (49, 37): "a photo of a person lying on a surfboard",
    (52, 37): "a photo of a person loading a surfboard",
    (76, 37): "a photo of a person riding a surfboard",
    (93, 37): "a photo of a person standing on a surfboard",
    (87, 37): "a photo of a person sitting on a surfboard",
    (111, 37): "a photo of a person washing a surfboard",
    (57, 37): "a photo of a person and a surfboard",
    (8, 77): "a photo of a person carrying a teddy bear",
    (36, 77): "a photo of a person holding a teddy bear",
    (39, 77): "a photo of a person hugging a teddy bear",
    (45, 77): "a photo of a person kissing a teddy bear",
    (57, 77): "a photo of a person and a teddy bear",
    (8, 38): "a photo of a person carrying a tennis racket",
    (36, 38): "a photo of a person holding a tennis racket",
    (41, 38): "a photo of a person inspecting a tennis racket",
    (99, 38): "a photo of a person swinging a tennis racket",
    (57, 38): "a photo of a person and a tennis racket",
    (0, 27): "a photo of a person adjusting a tie",
    (15, 27): "a photo of a person cutting a tie",
    (36, 27): "a photo of a person holding a tie",
    (41, 27): "a photo of a person inspecting a tie",
    (70, 27): "a photo of a person pulling a tie",
    (105, 27): "a photo of a person tying a tie",
    (114, 27): "a photo of a person wearing a tie",
    (57, 27): "a photo of a person and a tie",
    (36, 70): "a photo of a person holding a toaster",
    (59, 70): "a photo of a person operating a toaster",
    (75, 70): "a photo of a person repairing a toaster",
    (57, 70): "a photo of a person and a toaster",
    (12, 61): "a photo of a person cleaning a toilet",
    (29, 61): "a photo of a person flushing a toilet",
    (58, 61): "a photo of a person opening a toilet",
    (75, 61): "a photo of a person repairing a toilet",
    (87, 61): "a photo of a person sitting on a toilet",
    (93, 61): "a photo of a person standing on a toilet",
    (111, 61): "a photo of a person washing a toilet",
    (57, 61): "a photo of a person and a toilet",
    (6, 79): "a photo of a person brushing with a toothbrush",
    (36, 79): "a photo of a person holding a toothbrush",
    (111, 79): "a photo of a person washing a toothbrush",
    (57, 79): "a photo of a person and a toothbrush",
    (42, 9): "a photo of a person installing a traffic light",
    (75, 9): "a photo of a person repairing a traffic light",
    (94, 9): "a photo of a person standing under a traffic light",
    (97, 9): "a photo of a person stopping at a traffic light",
    (57, 9): "a photo of a person and a traffic light",
    (17, 7): "a photo of a person directing a truck",
    (21, 7): "a photo of a person driving a truck",
    (41, 7): "a photo of a person inspecting a truck",
    (52, 7): "a photo of a person loading a truck",
    (75, 7): "a photo of a person repairing a truck",
    (76, 7): "a photo of a person riding a truck",
    (87, 7): "a photo of a person sitting on a truck",
    (111, 7): "a photo of a person washing a truck",
    (57, 7): "a photo of a person and a truck",
    (8, 25): "a photo of a person carrying a umbrella",
    (36, 25): "a photo of a person holding a umbrella",
    (53, 25): "a photo of a person losing a umbrella",
    (58, 25): "a photo of a person opening a umbrella",
    (75, 25): "a photo of a person repairing a umbrella",
    (82, 25): "a photo of a person setting a umbrella",
    (94, 25): "a photo of a person standing under a umbrella",
    (57, 25): "a photo of a person and a umbrella",
    (36, 75): "a photo of a person holding a vase",
    (54, 75): "a photo of a person making a vase",
    (61, 75): "a photo of a person painting a vase",
    (57, 75): "a photo of a person and a vase",
    (27, 40): "a photo of a person filling a wine glass",
    (36, 40): "a photo of a person holding a wine glass",
    (85, 40): "a photo of a person sipping a wine glass",
    (106, 40): "a photo of a person toasting a wine glass",
    (48, 40): "a photo of a person licking a wine glass",
    (111, 40): "a photo of a person washing a wine glass",
    (57, 40): "a photo of a person and a wine glass",
    (26, 22): "a photo of a person feeding a zebra",
    (36, 22): "a photo of a person holding a zebra",
    (65, 22): "a photo of a person petting a zebra",
    (112, 22): "a photo of a person watching a zebra",
    (57, 22): "a photo of a person and a zebra",
}
# 修改后的
"""
{0: 'a photo of a person boarding an airplane',
1: 'a photo of a person directing an airplane',
2: 'a photo of a person exiting an airplane', 
3: 'a photo of a person flying an airplane', 
4: 'a photo of a person inspecting an airplane', 
5: 'a photo of a person loading an airplane', 
6: 'a photo of a person riding an airplane', 
7: 'a photo of a person sitting on an airplane', 
8: 'a photo of a person washing an airplane', 
9: 'a photo of a person and an airplane', 
10: 'a photo of a person carrying a bicycle', 11: 'a photo of a person holding a bicycle', 12: 'a photo of a person inspecting a bicycle', 13: 'a photo of a person jumping a bicycle', 14: 'a photo of a person hopping on a bicycle', 15: 'a photo of a person parking a bicycle', 16: 'a photo of a person pushing a bicycle', 17: 'a photo of a person repairing a bicycle', 18: 'a photo of a person riding a bicycle', 19: 'a photo of a person sitting on a bicycle', 20: 'a photo of a person straddling a bicycle', 21: 'a photo of a person walking a bicycle', 22: 'a photo of a person washing a bicycle', 23: 'a photo of a person and a bicycle', 24: 'a photo of a person chasing a bird', 25: 'a photo of a person feeding a bird', 26: 'a photo of a person holding a bird', 27: 'a photo of a person petting a bird', 28: 'a photo of a person releasing a bird', 29: 'a photo of a person watching a bird', 30: 'a photo of a person and a bird', 31: 'a photo of a person boarding a boat', 32: 'a photo of a person driving a boat', 33: 'a photo of a person exiting a boat', 34: 'a photo of a person inspecting a boat', 35: 'a photo of a person jumping a boat', 36: 'a photo of a person launching a boat', 37: 'a photo of a person repairing a boat', 38: 'a photo of a person riding a boat', 39: 'a photo of a person rowing a boat', 40: 'a photo of a person sailing a boat', 41: 'a photo of a person sitting on a boat', 42: 'a photo of a person standing on a boat', 43: 'a photo of a person tying a boat', 44: 'a photo of a person washing a boat', 45: 'a photo of a person and a boat', 46: 'a photo of a person carrying a bottle', 47: 'a photo of a person drinking with a bottle', 48: 'a photo of a person holding a bottle', 49: 'a photo of a person inspecting a bottle', 50: 'a photo of a person licking a bottle', 51: 'a photo of a person opening a bottle', 52: 'a photo of a person pouring a bottle', 53: 'a photo of a person and a bottle', 54: 'a photo of a person boarding a bus', 55: 'a photo of a person directing a bus', 56: 'a photo of a person driving a bus', 57: 'a photo of a person exiting a bus', 58: 'a photo of a person inspecting a bus', 59: 'a photo of a person loading a bus', 60: 'a photo of a person riding a bus', 61: 'a photo of a person sitting on a bus', 62: 'a photo of a person washing a bus', 63: 'a photo of a person waving a bus', 64: 'a photo of a person and a bus', 65: 'a photo of a person boarding a car', 66: 'a photo of a person directing a car', 67: 'a photo of a person driving a car', 68: 'a photo of a person hosing a car', 69: 'a photo of a person inspecting a car', 70: 'a photo of a person jumping a car', 71: 'a photo of a person loading a car', 72: 'a photo of a person parking a car', 73: 'a photo of a person riding a car', 74: 'a photo of a person washing a car', 75: 'a photo of a person and a car', 76: 'a photo of a person drying a cat', 77: 'a photo of a person feeding a cat', 78: 'a photo of a person holding a cat', 79: 'a photo of a person hugging a cat', 80: 'a photo of a person kissing a cat', 81: 'a photo of a person petting a cat', 82: 'a photo of a person scratching a cat', 83: 'a photo of a person washing a cat', 84: 'a photo of a person chasing a cat', 85: 'a photo of a person and a cat', 86: 'a photo of a person carrying a chair', 87: 'a photo of a person holding a chair', 88: 'a photo of a person lying on a chair', 89: 'a photo of a person sitting on a chair', 90: 'a photo of a person standing on a chair', 91: 'a photo of a person and a chair', 92: 'a photo of a person carrying a couch', 93: 'a photo of a person lying on a couch', 94: 'a photo of a person sitting on a couch', 95: 'a photo of a person and a couch', 96: 'a photo of a person feeding a cow', 97: 'a photo of a person herding a cow', 98: 'a photo of a person holding a cow', 99: 'a photo of a person hugging a cow', 100: 'a photo of a person kissing a cow', 101: 'a photo of a person lassoing a cow', 102: 'a photo of a person milking a cow', 103: 'a photo of a person petting a cow', 104: 'a photo of a person riding a cow', 105: 'a photo of a person walking a cow', 106: 'a photo of a person and a cow', 107: 'a photo of a person cleaning a dining table', 108: 'a photo of a person eating at a dining table', 109: 'a photo of a person sitting at a dining table', 110: 'a photo of a person and a dining table', 111: 'a photo of a person carrying a dog', 112: 'a photo of a person drying a dog', 113: 'a photo of a person feeding a dog', 114: 'a photo of a person grooming a dog', 115: 'a photo of a person holding a dog', 116: 'a photo of a person hosing a dog', 117: 'a photo of a person hugging a dog', 118: 'a photo of a person inspecting a dog', 119: 'a photo of a person kissing a dog', 120: 'a photo of a person petting a dog', 121: 'a photo of a person running a dog', 122: 'a photo of a person scratching a dog', 123: 'a photo of a person straddling a dog', 124: 'a photo of a person training a dog', 125: 'a photo of a person walking a dog', 126: 'a photo of a person washing a dog', 127: 'a photo of a person chasing a dog', 128: 'a photo of a person and a dog', 129: 'a photo of a person feeding a horse', 130: 'a photo of a person grooming a horse', 131: 'a photo of a person holding a horse', 132: 'a photo of a person hugging a horse', 133: 'a photo of a person jumping a horse', 134: 'a photo of a person kissing a horse', 135: 'a photo of a person loading a horse', 136: 'a photo of a person hopping on a horse', 137: 'a photo of a person petting a horse', 138: 'a photo of a person racing a horse', 139: 'a photo of a person riding a horse', 140: 'a photo of a person running a horse', 141: 'a photo of a person straddling a horse', 142: 'a photo of a person training a horse', 143: 'a photo of a person walking a horse', 144: 'a photo of a person washing a horse', 145: 'a photo of a person and a horse', 146: 'a photo of a person holding a motorcycle', 147: 'a photo of a person inspecting a motorcycle', 148: 'a photo of a person jumping a motorcycle', 149: 'a photo of a person hopping on a motorcycle', 150: 'a photo of a person parking a motorcycle', 151: 'a photo of a person pushing a motorcycle', 152: 'a photo of a person racing a motorcycle', 153: 'a photo of a person riding a motorcycle', 154: 'a photo of a person sitting on a motorcycle', 155: 'a photo of a person straddling a motorcycle', 156: 'a photo of a person turning a motorcycle', 157: 'a photo of a person walking a motorcycle', 158: 'a photo of a person washing a motorcycle', 159: 'a photo of a person and a motorcycle', 160: 'a photo of a person carrying a person', 161: 'a photo of a person greeting a person', 162: 'a photo of a person holding a person', 163: 'a photo of a person hugging a person', 164: 'a photo of a person kissing a person', 165: 'a photo of a person stabbing a person', 166: 'a photo of a person tagging a person', 167: 'a photo of a person teaching a person', 168: 'a photo of a person licking a person', 169: 'a photo of a person and a person', 170: 'a photo of a person carrying a potted plant', 171: 'a photo of a person holding a potted plant', 172: 'a photo of a person hosing a potted plant', 173: 'a photo of a person and a potted plant', 174: 'a photo of a person carrying a sheep', 175: 'a photo of a person feeding a sheep', 176: 'a photo of a person herding a sheep', 177: 'a photo of a person holding a sheep', 178: 'a photo of a person hugging a sheep', 179: 'a photo of a person kissing a sheep', 180: 'a photo of a person petting a sheep', 181: 'a photo of a person riding a sheep', 182: 'a photo of a person shearing a sheep', 183: 'a photo of a person walking a sheep', 184: 'a photo of a person washing a sheep', 185: 'a photo of a person and a sheep', 186: 'a photo of a person boarding a train', 187: 'a photo of a person driving a train', 188: 'a photo of a person exiting a train', 189: 'a photo of a person loading a train', 190: 'a photo of a person riding a train', 191: 'a photo of a person sitting on a train', 192: 'a photo of a person washing a train', 193: 'a photo of a person and a train', 194: 'a photo of a person controlling a tv', 195: 'a photo of a person repairing a tv', 196: 'a photo of a person watching a tv', 197: 'a photo of a person and a tv', 198: 'a photo of a person buying an apple', 199: 'a photo of a person cutting an apple', 200: 'a photo of a person eating an apple', 201: 'a photo of a person holding an apple', 202: 'a photo of a person inspecting an apple', 203: 'a photo of a person peeling an apple', 204: 'a photo of a person picking an apple', 205: 'a photo of a person smelling an apple', 206: 'a photo of a person washing an apple', 207: 'a photo of a person and an apple', 208: 'a photo of a person carrying a backpack', 209: 'a photo of a person holding a backpack', 210: 'a photo of a person inspecting a backpack', 211: 'a photo of a person opening a backpack', 212: 'a photo of a person wearing a backpack', 213: 'a photo of a person and a backpack', 214: 'a photo of a person buying a banana', 215: 'a photo of a person carrying a banana', 216: 'a photo of a person cutting a banana', 217: 'a photo of a person eating a banana', 218: 'a photo of a person holding a banana', 219: 'a photo of a person inspecting a banana', 220: 'a photo of a person peeling a banana', 221: 'a photo of a person picking a banana', 222: 'a photo of a person smelling a banana', 223: 'a photo of a person and a banana', 224: 'a photo of a person breaking a baseball bat', 225: 'a photo of a person carrying a baseball bat', 226: 'a photo of a person holding a baseball bat', 227: 'a photo of a person signing a baseball bat', 228: 'a photo of a person swinging a baseball bat', 229: 'a photo of a person throwing a baseball bat', 230: 'a photo of a person wielding a baseball bat', 231: 'a photo of a person and a baseball bat', 232: 'a photo of a person holding a baseball glove', 233: 'a photo of a person wearing a baseball glove', 234: 'a photo of a person and a baseball glove', 235: 'a photo of a person feeding a bear', 236: 'a photo of a person hunting a bear', 237: 'a photo of a person watching a bear', 238: 'a photo of a person and a bear', 239: 'a photo of a person cleaning a bed', 240: 'a photo of a person lying on a bed', 241: 'a photo of a person sitting on a bed', 242: 'a photo of a person and a bed', 243: 'a photo of a person inspecting a bench', 244: 'a photo of a person lying on a bench', 245: 'a photo of a person sitting on a bench', 246: 'a photo of a person and a bench', 247: 'a photo of a person carrying a book', 248: 'a photo of a person holding a book', 249: 'a photo of a person opening a book', 250: 'a photo of a person reading a book', 251: 'a photo of a person and a book', 252: 'a photo of a person holding a bowl', 253: 'a photo of a person stirring a bowl', 254: 'a photo of a person washing a bowl', 255: 'a photo of a person licking a bowl', 256: 'a photo of a person and a bowl', 257: 'a photo of a person cutting a broccoli', 258: 'a photo of a person eating a broccoli', 259: 'a photo of a person holding a broccoli', 260: 'a photo of a person smelling a broccoli', 261: 'a photo of a person stirring a broccoli', 262: 'a photo of a person washing a broccoli', 263: 'a photo of a person and a broccoli', 264: 'a photo of a person blowing a cake', 265: 'a photo of a person carrying a cake', 266: 'a photo of a person cutting a cake', 267: 'a photo of a person eating a cake', 268: 'a photo of a person holding a cake', 269: 'a photo of a person lighting a cake', 270: 'a photo of a person making a cake', 271: 'a photo of a person picking up a cake', 272: 'a photo of a person and a cake', 273: 'a photo of a person carrying a carrot', 274: 'a photo of a person cooking a carrot', 275: 'a photo of a person cutting a carrot', 276: 'a photo of a person eating a carrot', 277: 'a photo of a person holding a carrot', 278: 'a photo of a person peeling a carrot', 279: 'a photo of a person smelling a carrot', 280: 'a photo of a person stirring a carrot', 281: 'a photo of a person washing a carrot', 282: 'a photo of a person and a carrot', 283: 'a photo of a person carrying a cell phone', 284: 'a photo of a person holding a cell phone', 285: 'a photo of a person reading a cell phone', 286: 'a photo of a person repairing a cell phone', 287: 'a photo of a person talking on a cell phone', 288: 'a photo of a person texting on a cell phone', 289: 'a photo of a person and a cell phone', 290: 'a photo of a person checking a clock', 291: 'a photo of a person holding a clock', 292: 'a photo of a person repairing a clock', 293: 'a photo of a person setting a clock', 294: 'a photo of a person and a clock', 295: 'a photo of a person carrying a cup', 296: 'a photo of a person drinking with a cup', 297: 'a photo of a person holding a cup', 298: 'a photo of a person inspecting a cup', 299: 'a photo of a person pouring a cup', 300: 'a photo of a person sipping a cup', 301: 'a photo of a person smelling a cup', 302: 'a photo of a person filling a cup', 303: 'a photo of a person washing a cup', 304: 'a photo of a person and a cup', 305: 'a photo of a person buying a donut', 306: 'a photo of a person carrying a donut', 307: 'a photo of a person eating a donut', 308: 'a photo of a person holding a donut', 309: 'a photo of a person making a donut', 310: 'a photo of a person picking up a donut', 311: 'a photo of a person smelling a donut', 312: 'a photo of a person and a donut', 313: 'a photo of a person feeding an elephant', 314: 'a photo of a person holding an elephant', 315: 'a photo of a person hosing an elephant', 316: 'a photo of a person hugging an elephant', 317: 'a photo of a person kissing an elephant', 318: 'a photo of a person hopping on an elephant', 319: 'a photo of a person petting an elephant', 320: 'a photo of a person riding an elephant', 321: 'a photo of a person walking an elephant', 322: 'a photo of a person washing an elephant', 323: 'a photo of a person watching an elephant', 324: 'a photo of a person and an elephant', 325: 'a photo of a person hugging a fire hydrant', 326: 'a photo of a person inspecting a fire hydrant', 327: 'a photo of a person opening a fire hydrant', 328: 'a photo of a person painting a fire hydrant', 329: 'a photo of a person and a fire hydrant', 330: 'a photo of a person holding a fork', 331: 'a photo of a person lifting a fork', 332: 'a photo of a person sticking a fork', 333: 'a photo of a person licking a fork', 334: 'a photo of a person washing a fork', 335: 'a photo of a person and a fork', 336: 'a photo of a person blocking a frisbee', 337: 'a photo of a person catching a frisbee', 338: 'a photo of a person holding a frisbee', 339: 'a photo of a person spinning a frisbee', 340: 'a photo of a person throwing a frisbee', 341: 'a photo of a person and a frisbee', 342: 'a photo of a person feeding a giraffe', 343: 'a photo of a person kissing a giraffe', 344: 'a photo of a person petting a giraffe', 345: 'a photo of a person riding a giraffe', 346: 'a photo of a person watching a giraffe', 347: 'a photo of a person and a giraffe', 348: 'a photo of a person holding a hair drier', 349: 'a photo of a person operating a hair drier', 350: 'a photo of a person repairing a hair drier', 351: 'a photo of a person and a hair drier', 352: 'a photo of a person carrying a handbag', 353: 'a photo of a person holding a handbag', 354: 'a photo of a person inspecting a handbag', 355: 'a photo of a person and a handbag', 356: 'a photo of a person carrying a hot dog', 357: 'a photo of a person cooking a hot dog', 358: 'a photo of a person cutting a hot dog', 359: 'a photo of a person eating a hot dog', 360: 'a photo of a person holding a hot dog', 361: 'a photo of a person making a hot dog', 362: 'a photo of a person and a hot dog', 363: 'a photo of a person carrying a keyboard', 364: 'a photo of a person cleaning a keyboard', 365: 'a photo of a person holding a keyboard', 366: 'a photo of a person typing on a keyboard', 367: 'a photo of a person and a keyboard', 368: 'a photo of a person assembling a kite', 369: 'a photo of a person carrying a kite', 370: 'a photo of a person flying a kite', 371: 'a photo of a person holding a kite', 372: 'a photo of a person inspecting a kite', 373: 'a photo of a person launching a kite', 374: 'a photo of a person pulling a kite', 375: 'a photo of a person and a kite', 376: 'a photo of a person cutting with a knife', 377: 'a photo of a person holding a knife', 378: 'a photo of a person sticking a knife', 379: 'a photo of a person washing a knife', 380: 'a photo of a person wielding a knife', 381: 'a photo of a person licking a knife', 382: 'a photo of a person and a knife', 383: 'a photo of a person holding a laptop', 384: 'a photo of a person opening a laptop', 385: 'a photo of a person reading a laptop', 386: 'a photo of a person repairing a laptop', 387: 'a photo of a person typing on a laptop', 388: 'a photo of a person and a laptop', 389: 'a photo of a person cleaning a microwave', 390: 'a photo of a person opening a microwave', 391: 'a photo of a person operating a microwave', 392: 'a photo of a person and a microwave', 393: 'a photo of a person controlling a mouse', 394: 'a photo of a person holding a mouse', 395: 'a photo of a person repairing a mouse', 396: 'a photo of a person and a mouse', 397: 'a photo of a person buying an orange', 398: 'a photo of a person cutting an orange', 399: 'a photo of a person eating an orange', 400: 'a photo of a person holding an orange', 401: 'a photo of a person inspecting an orange', 402: 'a photo of a person peeling an orange', 403: 'a photo of a person picking an orange', 404: 'a photo of a person squeezing an orange', 405: 'a photo of a person washing an orange', 406: 'a photo of a person and an orange', 407: 'a photo of a person cleaning an oven', 408: 'a photo of a person holding an oven', 409: 'a photo of a person inspecting an oven', 410: 'a photo of a person opening an oven', 411: 'a photo of a person repairing an oven', 412: 'a photo of a person operating an oven', 413: 'a photo of a person and an oven', 414: 'a photo of a person checking a parking meter', 415: 'a photo of a person paying a parking meter', 416: 'a photo of a person repairing a parking meter', 417: 'a photo of a person and a parking meter', 418: 'a photo of a person buying a pizza', 419: 'a photo of a person carrying a pizza', 420: 'a photo of a person cooking a pizza', 421: 'a photo of a person cutting a pizza', 422: 'a photo of a person eating a pizza', 423: 'a photo of a person holding a pizza', 424: 'a photo of a person making a pizza', 425: 'a photo of a person picking up a pizza', 426: 'a photo of a person sliding a pizza', 427: 'a photo of a person smelling a pizza', 428: 'a photo of a person and a pizza', 429: 'a photo of a person cleaning a refrigerator', 430: 'a photo of a person holding a refrigerator', 431: 'a photo of a person moving a refrigerator', 432: 'a photo of a person opening a refrigerator', 433: 'a photo of a person and a refrigerator', 434: 'a photo of a person holding a remote', 435: 'a photo of a person pointing a remote', 436: 'a photo of a person swinging a remote', 437: 'a photo of a person and a remote', 438: 'a photo of a person carrying a sandwich', 439: 'a photo of a person cooking a sandwich', 440: 'a photo of a person cutting a sandwich', 441: 'a photo of a person eating a sandwich', 442: 'a photo of a person holding a sandwich', 443: 'a photo of a person making a sandwich', 444: 'a photo of a person and a sandwich', 445: 'a photo of a person cutting with a scissors', 446: 'a photo of a person holding a scissors', 447: 'a photo of a person opening a scissors', 448: 'a photo of a person and a scissors', 449: 'a photo of a person cleaning a sink', 450: 'a photo of a person repairing a sink', 451: 'a photo of a person washing a sink', 452: 'a photo of a person and a sink', 453: 'a photo of a person carrying a skateboard', 454: 'a photo of a person flipping a skateboard', 455: 'a photo of a person grinding a skateboard', 456: 'a photo of a person holding a skateboard', 457: 'a photo of a person jumping a skateboard', 458: 'a photo of a person picking up a skateboard', 459: 'a photo of a person riding a skateboard', 460: 'a photo of a person sitting on a skateboard', 461: 'a photo of a person standing on a skateboard', 462: 'a photo of a person and a skateboard', 463: 'a photo of a person adjusting a skis', 464: 'a photo of a person carrying a skis', 465: 'a photo of a person holding a skis', 466: 'a photo of a person inspecting a skis', 467: 'a photo of a person jumping a skis', 468: 'a photo of a person picking up a skis', 469: 'a photo of a person repairing a skis', 470: 'a photo of a person riding a skis', 471: 'a photo of a person standing on a skis', 472: 'a photo of a person wearing a skis', 473: 'a photo of a person and a skis', 474: 'a photo of a person adjusting a snowboard', 475: 'a photo of a person carrying a snowboard', 476: 'a photo of a person grinding a snowboard', 477: 'a photo of a person holding a snowboard', 478: 'a photo of a person jumping a snowboard', 479: 'a photo of a person riding a snowboard', 480: 'a photo of a person standing on a snowboard', 481: 'a photo of a person wearing a snowboard', 482: 'a photo of a person and a snowboard', 483: 'a photo of a person holding a spoon', 484: 'a photo of a person licking a spoon', 485: 'a photo of a person washing a spoon', 486: 'a photo of a person sipping a spoon', 487: 'a photo of a person and a spoon', 488: 'a photo of a person blocking a sports ball', 489: 'a photo of a person carrying a sports ball', 490: 'a photo of a person catching a sports ball', 491: 'a photo of a person dribbling a sports ball', 492: 'a photo of a person hitting a sports ball', 493: 'a photo of a person holding a sports ball', 494: 'a photo of a person inspecting a sports ball', 495: 'a photo of a person kicking a sports ball', 496: 'a photo of a person picking up a sports ball', 497: 'a photo of a person serving a sports ball', 498: 'a photo of a person signing a sports ball', 499: 'a photo of a person spinning a sports ball', 500: 'a photo of a person throwing a sports ball', 501: 'a photo of a person and a sports ball', 502: 'a photo of a person holding a stop sign', 503: 'a photo of a person standing under a stop sign', 504: 'a photo of a person stopping at a stop sign', 505: 'a photo of a person and a stop sign', 506: 'a photo of a person carrying a suitcase', 507: 'a photo of a person dragging a suitcase', 508: 'a photo of a person holding a suitcase', 509: 'a photo of a person hugging a suitcase', 510: 'a photo of a person loading a suitcase', 511: 'a photo of a person opening a suitcase', 512: 'a photo of a person packing a suitcase', 513: 'a photo of a person picking up a suitcase', 514: 'a photo of a person zipping a suitcase', 515: 'a photo of a person and a suitcase', 516: 'a photo of a person carrying a surfboard', 517: 'a photo of a person dragging a surfboard', 518: 'a photo of a person holding a surfboard', 519: 'a photo of a person inspecting a surfboard', 520: 'a photo of a person jumping a surfboard', 521: 'a photo of a person lying on a surfboard', 522: 'a photo of a person loading a surfboard', 523: 'a photo of a person riding a surfboard', 524: 'a photo of a person standing on a surfboard', 525: 'a photo of a person sitting on a surfboard', 526: 'a photo of a person washing a surfboard', 527: 'a photo of a person and a surfboard', 528: 'a photo of a person carrying a teddy bear', 529: 'a photo of a person holding a teddy bear', 530: 'a photo of a person hugging a teddy bear', 531: 'a photo of a person kissing a teddy bear', 532: 'a photo of a person and a teddy bear', 533: 'a photo of a person carrying a tennis racket', 534: 'a photo of a person holding a tennis racket', 535: 'a photo of a person inspecting a tennis racket', 536: 'a photo of a person swinging a tennis racket', 537: 'a photo of a person and a tennis racket', 538: 'a photo of a person adjusting a tie', 539: 'a photo of a person cutting a tie', 540: 'a photo of a person holding a tie', 541: 'a photo of a person inspecting a tie', 542: 'a photo of a person pulling a tie', 543: 'a photo of a person tying a tie', 544: 'a photo of a person wearing a tie', 545: 'a photo of a person and a tie', 546: 'a photo of a person holding a toaster', 547: 'a photo of a person operating a toaster', 548: 'a photo of a person repairing a toaster', 549: 'a photo of a person and a toaster', 550: 'a photo of a person cleaning a toilet', 551: 'a photo of a person flushing a toilet', 552: 'a photo of a person opening a toilet', 553: 'a photo of a person repairing a toilet', 554: 'a photo of a person sitting on a toilet', 555: 'a photo of a person standing on a toilet', 556: 'a photo of a person washing a toilet', 557: 'a photo of a person and a toilet', 558: 'a photo of a person brushing with a toothbrush', 559: 'a photo of a person holding a toothbrush', 560: 'a photo of a person washing a toothbrush', 561: 'a photo of a person and a toothbrush', 562: 'a photo of a person installing a traffic light', 563: 'a photo of a person repairing a traffic light', 564: 'a photo of a person standing under a traffic light', 565: 'a photo of a person stopping at a traffic light', 566: 'a photo of a person and a traffic light', 567: 'a photo of a person directing a truck', 568: 'a photo of a person driving a truck', 569: 'a photo of a person inspecting a truck', 570: 'a photo of a person loading a truck', 571: 'a photo of a person repairing a truck', 572: 'a photo of a person riding a truck', 573: 'a photo of a person sitting on a truck', 574: 'a photo of a person washing a truck', 575: 'a photo of a person and a truck', 576: 'a photo of a person carrying a umbrella', 577: 'a photo of a person holding a umbrella', 578: 'a photo of a person losing a umbrella', 579: 'a photo of a person opening a umbrella', 580: 'a photo of a person repairing a umbrella', 581: 'a photo of a person setting a umbrella', 582: 'a photo of a person standing under a umbrella', 583: 'a photo of a person and a umbrella', 584: 'a photo of a person holding a vase', 585: 'a photo of a person making a vase', 586: 'a photo of a person painting a vase', 587: 'a photo of a person and a vase', 588: 'a photo of a person filling a wine glass', 589: 'a photo of a person holding a wine glass', 590: 'a photo of a person sipping a wine glass', 591: 'a photo of a person toasting a wine glass', 592: 'a photo of a person licking a wine glass', 593: 'a photo of a person washing a wine glass', 594: 'a photo of a person and a wine glass', 595: 'a photo of a person feeding a zebra', 596: 'a photo of a person holding a zebra', 597: 'a photo of a person petting a zebra', 598: 'a photo of a person watching a zebra', 599: 'a photo of a person and a zebra'}
"""

hico_text_label_no_object = {}
for id in hico_text_label.keys():
    if " an " in hico_text_label[id]:
        hico_text_label_no_object[id] = hico_text_label[id].split(" an ")[0]
        # print(hico_text_label[id].split(" an ")[0])
        # exit()
    else:
        hico_text_label_no_object[id] = " a ".join(
            hico_text_label[id].split(" a ")[:-1]
        )
        # print(" a ".join(hico_text_label[id].split(" a ")[:-1]))
        # exit()
    # hico_text_label_no_object
# print(hico_text_label_no_object)


# hico_text_label
# a = 4
# count_start = 0
# count_end = 0
# hico_object2label_index = {}
# print(len(hico_text_label.keys()))
# for id in hico_text_label.keys():
#     if a == id[1]:
#         count_end += 1
#         continue
#     else:
#         hico_object2label_index[a] = [count_start, count_end - 1]
#         a = id[1]
#         count_start = count_end
#         count_end += 1
# print(count_end)
# hico_object2label_index[a] = [count_start, count_end - 1]

# # hico_object2label_index[a] = [count_start, count_end]
# print(hico_object2label_index)
hico_obj_text_label = [
    (0, "a photo of a person"),
    (1, "a photo of a bicycle"),
    (2, "a photo of a car"),
    (3, "a photo of a motorcycle"),
    (4, "a photo of an airplane"),
    (5, "a photo of a bus"),
    (6, "a photo of a train"),
    (7, "a photo of a truck"),
    (8, "a photo of a boat"),
    (9, "a photo of a traffic light"),
    (10, "a photo of a fire hydrant"),
    (11, "a photo of a stop sign"),
    (12, "a photo of a parking meter"),
    (13, "a photo of a bench"),
    (14, "a photo of a bird"),
    (15, "a photo of a cat"),
    (16, "a photo of a dog"),
    (17, "a photo of a horse"),
    (18, "a photo of a sheep"),
    (19, "a photo of a cow"),
    (20, "a photo of an elephant"),
    (21, "a photo of a bear"),
    (22, "a photo of a zebra"),
    (23, "a photo of a giraffe"),
    (24, "a photo of a backpack"),
    (25, "a photo of a umbrella"),
    (26, "a photo of a handbag"),
    (27, "a photo of a tie"),
    (28, "a photo of a suitcase"),
    (29, "a photo of a frisbee"),
    (30, "a photo of a skis"),
    (31, "a photo of a snowboard"),
    (32, "a photo of a sports ball"),
    (33, "a photo of a kite"),
    (34, "a photo of a baseball bat"),
    (35, "a photo of a baseball glove"),
    (36, "a photo of a skateboard"),
    (37, "a photo of a surfboard"),
    (38, "a photo of a tennis racket"),
    (39, "a photo of a bottle"),
    (40, "a photo of a wine glass"),
    (41, "a photo of a cup"),
    (42, "a photo of a fork"),
    (43, "a photo of a knife"),
    (44, "a photo of a spoon"),
    (45, "a photo of a bowl"),
    (46, "a photo of a banana"),
    (47, "a photo of an apple"),
    (48, "a photo of a sandwich"),
    (49, "a photo of an orange"),
    (50, "a photo of a broccoli"),
    (51, "a photo of a carrot"),
    (52, "a photo of a hot dog"),
    (53, "a photo of a pizza"),
    (54, "a photo of a donut"),
    (55, "a photo of a cake"),
    (56, "a photo of a chair"),
    (57, "a photo of a couch"),
    (58, "a photo of a potted plant"),
    (59, "a photo of a bed"),
    (60, "a photo of a dining table"),
    (61, "a photo of a toilet"),
    (62, "a photo of a tv"),
    (63, "a photo of a laptop"),
    (64, "a photo of a mouse"),
    (65, "a photo of a remote"),
    (66, "a photo of a keyboard"),
    (67, "a photo of a cell phone"),
    (68, "a photo of a microwave"),
    (69, "a photo of an oven"),
    (70, "a photo of a toaster"),
    (71, "a photo of a sink"),
    (72, "a photo of a refrigerator"),
    (73, "a photo of a book"),
    (74, "a photo of a clock"),
    (75, "a photo of a vase"),
    (76, "a photo of a scissors"),
    (77, "a photo of a teddy bear"),
    (78, "a photo of a hair drier"),
    (79, "a photo of a toothbrush"),
    (80, "a photo of nothing"),
]

hico_unseen_index = {
    "default": [],
    # start from 0
    "rare_first": [
        509,
        279,
        280,
        402,
        504,
        286,
        499,
        498,
        289,
        485,
        303,
        311,
        325,
        439,
        351,
        358,
        66,
        427,
        379,
        418,
        70,
        416,
        389,
        90,
        395,
        76,
        397,
        84,
        135,
        262,
        401,
        592,
        560,
        586,
        548,
        593,
        526,
        181,
        257,
        539,
        535,
        260,
        596,
        345,
        189,
        205,
        206,
        429,
        179,
        350,
        405,
        522,
        449,
        261,
        255,
        546,
        547,
        44,
        22,
        334,
        599,
        239,
        315,
        317,
        229,
        158,
        195,
        238,
        364,
        222,
        281,
        149,
        399,
        83,
        127,
        254,
        398,
        403,
        555,
        552,
        520,
        531,
        440,
        436,
        482,
        274,
        8,
        188,
        216,
        597,
        77,
        407,
        556,
        469,
        474,
        107,
        390,
        410,
        27,
        381,
        463,
        99,
        184,
        100,
        292,
        517,
        80,
        333,
        62,
        354,
        104,
        55,
        50,
        198,
        168,
        391,
        192,
        595,
        136,
        581,
    ],  # 120
    "non_rare_first": [
        38,
        41,
        20,
        18,
        245,
        11,
        19,
        154,
        459,
        42,
        155,
        139,
        60,
        461,
        577,
        153,
        582,
        89,
        141,
        576,
        75,
        212,
        472,
        61,
        457,
        146,
        208,
        94,
        471,
        131,
        248,
        544,
        515,
        566,
        370,
        481,
        226,
        250,
        470,
        323,
        169,
        480,
        479,
        230,
        385,
        73,
        159,
        190,
        377,
        176,
        249,
        371,
        284,
        48,
        583,
        53,
        162,
        140,
        185,
        106,
        294,
        56,
        320,
        152,
        374,
        338,
        29,
        594,
        346,
        456,
        589,
        45,
        23,
        67,
        478,
        223,
        493,
        228,
        240,
        215,
        91,
        115,
        337,
        559,
        7,
        218,
        518,
        297,
        191,
        266,
        304,
        6,
        572,
        529,
        312,
        9,
        308,
        417,
        197,
        193,
        163,
        455,
        25,
        54,
        575,
        446,
        387,
        483,
        534,
        340,
        508,
        110,
        329,
        246,
        173,
        506,
        383,
        93,
        516,
        64,
    ],  # 120
    "unseen_object": [
        111,
        112,
        113,
        114,
        115,
        116,
        117,
        118,
        119,
        120,
        121,
        122,
        123,
        124,
        125,
        126,
        127,
        128,
        224,
        225,
        226,
        227,
        228,
        229,
        230,
        231,
        290,
        291,
        292,
        293,
        294,
        313,
        314,
        315,
        316,
        317,
        318,
        319,
        320,
        321,
        322,
        323,
        324,
        336,
        337,
        338,
        339,
        340,
        341,
        418,
        419,
        420,
        421,
        422,
        423,
        424,
        425,
        426,
        427,
        428,
        429,
        430,
        431,
        432,
        433,
        453,
        454,
        455,
        456,
        457,
        458,
        459,
        460,
        461,
        462,
        463,
        464,
        465,
        466,
        467,
        468,
        469,
        470,
        471,
        472,
        473,
        533,
        534,
        535,
        536,
        537,
        558,
        559,
        560,
        561,
        595,
        596,
        597,
        598,
        599,
    ],  # 100
    "unseen_verb": [
        4,
        6,
        12,
        15,
        18,
        25,
        34,
        38,
        40,
        49,
        58,
        60,
        68,
        69,
        72,
        73,
        77,
        82,
        96,
        97,
        104,
        113,
        116,
        118,
        122,
        129,
        139,
        147,
        150,
        153,
        165,
        166,
        172,
        175,
        176,
        181,
        190,
        202,
        210,
        212,
        219,
        227,
        228,
        233,
        235,
        243,
        298,
        313,
        315,
        320,
        326,
        336,
        342,
        345,
        354,
        372,
        401,
        404,
        409,
        431,
        436,
        459,
        466,
        470,
        472,
        479,
        481,
        488,
        491,
        494,
        498,
        504,
        519,
        523,
        535,
        536,
        541,
        544,
        562,
        565,
        569,
        572,
        591,
        595,
    ]
    # 84, 20 unseen verbs: [41, 100, 99, 91, 34, 42, 97, 84, 26, 106, 38, 56, 92, 79, 19, 76, 80, 2, 114, 62]
}
